Virtual Worlds and 3-D games such as Second Life, There, World of Warcraft, The Movies, etc offer controls for the user to manipulate the camera in 3-D environments. Effective camera control is important to the user experience of such systems, as they allow the user to properly view content without obstructions, view content in multiple locations beyond the avatar's current location, and help the user plan out navigation. The traditional approaches to controlling the camera are as follows:
Automatic camera positioning: an algorithm automatically computes an optimal positioning of the camera depending on the context of what is being viewed. The user has no direct control over the camera, although the user's actions in the environment (e.g. walking around) may influence the algorithm's decision of camera position. Many popular 3-D games and virtual worlds employ this technique to implement an “over-the-shoulder” camera of the user's avatar in the environment. “There”—a social virtual world—uses a sophisticated algorithm to optimally place a camera to try to fit all participants in a conversation and even precomputes cinegraphic cuts and close-ups. The drawback of this approach is the algorithm may not always be successful in finding an optimal camera position, and the user must take indirect measures to try to “fix” the problem (e.g. camera may get “stuck” on an object, and the user must move the character frantically around to “unglue” the camera).
Manual camera positioning: a user interface to directly control every aspect of the camera's position and angle is offered to the user. Typically, this is done using some combination of keyboard and mouse actions, or via a special controller (e.g. Nintendo Wii controller, gamepad, etc). Many popular 3-D games offer this to the user. This provides significant flexibility for the user to find the optimal camera position and angle. However, manually setting up a camera may be time-consuming, and may require a time investment to learn a set of controls just to view the scene.
Choice of preset cameras: an environment may have one or more camera positions and angles predefined in advance by the designer for optimal viewing. The user selects the appropriate camera via a menu or hotkeys. This is common in many single or multi-user 3-D games, such as flight simulators (e.g. “chase cam” view, “nosecone” view, etc), sports games (e.g. “goalie” view, “driver” view), etc. Preset cameras make the camera control problem a fast decision of picking an appropriate camera, at the cost of the possibility that none of the camera choices are desirable. Another drawback is that the user needs to remember the menu or hotkey command to switch to desired camera positions. Certain types of games and virtual worlds offer a thumbnail view of another camera in case the user does need to switch (e.g. a thumbnail of the overhead map view, a rear-view mirror for a driving game), or is based on natural object selection (e.g. a game that lets the user equip binoculars will switch the camera to a binocular view).